read weir table
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(IniList), | intent(in) | :: | iniDB | |||
integer(kind=short), | intent(in) | :: | k | |||
type(Diversion), | intent(inout) | :: | div |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=short), | public, | ALLOCATABLE | :: | doy(:) | |||
integer(kind=short), | public | :: | i | ||||
logical, | public | :: | isString | ||||
integer(kind=short), | public | :: | j | ||||
integer(kind=short), | public | :: | nDOY | ||||
integer(kind=short), | public | :: | shortInt | ||||
character(len=300), | public | :: | string |
SUBROUTINE ReadWeir & ! (iniDB, k, div) IMPLICIT NONE !Arguments with intent(in): TYPE(IniList), INTENT (IN) :: iniDB INTEGER (KIND = short), INTENT (IN) :: k !Arguemnts with intent (inout): TYPE(Diversion), INTENT(INOUT) :: div !local declarations CHARACTER (LEN = 300) :: string INTEGER (KIND = short) :: nDOY INTEGER (KIND = short) :: shortInt INTEGER (KIND = short) :: i, j INTEGER(KIND = short), ALLOCATABLE :: doy (:) LOGICAL :: isString !---------------------------end of declarations-------------------------------- string = IniReadString ('weir', iniDB, section = ToString(k), & subsection = 'diversion') CALL TableNew (string, div % weir) nDOY = div % weir % noCols - 1 ALLOCATE ( doy ( nDOY ) ) j = 0 DO i = 1, div % weir % noCols shortInt = StringToShort ( div % weir % col ( i ) % header, isString ) IF ( .NOT. isString ) THEN !number detected j = j + 1 doy ( j ) = shortInt END IF END DO !set when (doy day of year) geometry table changes div % weirDOY (:) = MAXVAL (doy) ! DO i = 1, nDOY DO j = doy (i), 365 div % weirDOY (j) = doy (i) END DO END DO DEALLOCATE (doy) RETURN END SUBROUTINE ReadWeir